package com.demo.example.hot100;

import java.util.Stack;

public class TheLongestValidBrancket {
    public static void main(String[] args) {
        String s="abcde";
        System.out.println(s.substring(0,4));
    }
    public static int longestValidParentheses(String s) {
        if(s==null || s.length()==0){
            return 0;
        }
        //最长有效括号只能是偶数值
        int max=Integer.MIN_VALUE;
        for(int i=0;i<s.length();i++){
            for(int j=s.length();j>=i;j--){
                if(((j-i)&1)==1){
                    continue;
                }
                String tmp=s.substring(i,j);
                if(isValidParentheses(tmp)){
                    max=max>tmp.length()?max:tmp.length();
                }
            }
        }
        return max;
    }
    public static boolean isValidParentheses(String s){
        Stack<Character> stack=new Stack<>();
        for(int i=0;i<s.length();i++){
            char ch=s.charAt(i);
            if(ch=='('){
                stack.push(ch);
            }else{
                if(stack.isEmpty()){
                    return false;
                }else{
                    if(stack.peek()=='(' && ch==')'){
                        stack.pop();
                    }
                }
            }
        }
        if(stack.isEmpty()){
            return true;
        }else{
            return false;
        }
    }
}
